home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xa;
-
- import com.extensibility.app.BaseAction;
- import com.extensibility.app.UI;
- import com.extensibility.rock.Platform;
- import com.extensibility.rock.RBevelBorder;
- import com.extensibility.rock.RButton;
- import com.extensibility.rock.RTabbedPane;
- import com.extensibility.rock.ScrollPop;
- import com.extensibility.util.Debug;
- import com.extensibility.util.StringUtilities;
- import com.extensibility.xml.AttributeDeclaration;
- import com.extensibility.xml.BaseDeclaration;
- import com.extensibility.xml.ExportInterface;
- import com.extensibility.xml.ExternalSubset;
- import com.extensibility.xml.ProcessingInstruction;
- import com.extensibility.xml.SchemaFlavorIntf;
- import com.extensibility.xml.SchemaIntf;
- import com.extensibility.xml.SchemaUtilities;
- import com.extensibility.xml.URI;
- import java.awt.Cursor;
- import java.awt.Font;
- import java.awt.event.ActionEvent;
- import java.awt.event.MouseEvent;
- import java.util.Vector;
- import javax.swing.AbstractButton;
- import javax.swing.JCheckBox;
- import javax.swing.JCheckBoxMenuItem;
- import javax.swing.JComponent;
- import javax.swing.JLabel;
- import javax.swing.JPopupMenu;
- import javax.swing.JScrollPane;
- import javax.swing.JTabbedPane;
- import javax.swing.JTextArea;
- import javax.swing.text.DefaultEditorKit;
-
- public class CommentPane extends CompositePane {
- boolean semaphoreDontUpdate = false;
- static final String TWIXT_LINE = "--";
- static final String TWIXT = String.valueOf(String.valueOf(System.getProperty("line.separator")).concat(String.valueOf("--"))).concat(String.valueOf(System.getProperty("line.separator")));
- public static final int SHOW_DECL = 1;
- public static final int SHOW_DOC = 2;
- static final int TAB_ALL = 0;
- static final int TAB_UNKIND = 1;
- static final int TAB_USAGE = 2;
- static final int TAB_CHANGES = 3;
- static final int TAB_PREVIEW = 4;
- CommentText unkindText;
- JScrollPane unkindScroll;
- JLabel unkindTitle;
- CommentText changesText;
- JScrollPane changesScroll;
- JLabel changesTitle;
- CommentText usageText;
- JScrollPane usageScroll;
- JLabel usageTitle;
- CommentText allText;
- JScrollPane allScroll;
- JLabel allTitle;
- CommentText previewText;
- JScrollPane previewScroll;
- JLabel previewTitle;
- JCheckBox changesBox;
- JTabbedPane tabPane;
- int previousTab = 0;
- int showMode = 1;
- ExportInterface previewer;
- String previewFlavor;
- DocBridge activeDoc;
- DeclBridge activeDecl;
- Displayable activeItem;
- PreviewButton previewBtn;
- BaseAction toggleDeclDoc;
- BaseAction showDeclAction;
- BaseAction showDocAction;
- SchemaDocListener docListener;
-
- public CommentPane(SchemaDoc var1) {
- super(var1);
- this.previewFlavor = SchemaIntf.DTD_FLAVOR_NAME;
- this.activeDoc = new DocBridge(this);
- this.activeDecl = new DeclBridge(this);
- this.activeItem = this.activeDecl;
- this.toggleDeclDoc = new 7(this, "comment.show.doc");
- this.showDeclAction = new 8(this, "comment.show.decl");
- this.showDocAction = new 9(this, "comment.show.doc");
- this.docListener = new 10(this);
- this.allText = new CommentText(false);
- this.allScroll = new JScrollPane(this.allText);
- this.allText.setEditable(false);
- this.allTitle = new JLabel();
- CompositePane.setHeader(this.allScroll, this.allTitle, new RButton(this.toggleDeclDoc));
- this.unkindText = new CommentText(((CompositePane)this).getSchemaDoc().isReadOnly());
- this.unkindScroll = new JScrollPane(this.unkindText);
- this.unkindTitle = new JLabel();
- CompositePane.setHeader(this.unkindScroll, this.unkindTitle, new RButton(this.toggleDeclDoc));
- this.unkindText.getDocument().addDocumentListener(new 1(this));
- this.changesText = new CommentText(((CompositePane)this).getSchemaDoc().isReadOnly());
- this.changesScroll = new JScrollPane(this.changesText);
- this.changesText.setEditable(false);
- this.changesBox = new JCheckBox(UI.getString("comment.log.changes"));
- this.changesBox.addActionListener(new 2(this));
- this.changesBox.setSelected(((CompositePane)this).getSchemaDoc().getChangeLogging());
- this.changesTitle = new JLabel();
- CompositePane.setHeader(this.changesScroll, this.changesTitle, this.changesBox);
- this.usageText = new CommentText(((CompositePane)this).getSchemaDoc().isReadOnly());
- this.usageScroll = new JScrollPane(this.usageText);
- this.usageText.getDocument().addDocumentListener(new 3(this));
- this.usageTitle = new JLabel();
- CompositePane.setHeader(this.usageScroll, this.usageTitle, new RButton(this.toggleDeclDoc));
- this.previewText = new CommentText(false);
- this.previewScroll = new JScrollPane(this.previewText);
- this.previewText.setEditable(false);
- this.previewText.addMouseListener(new 4(this));
- this.previewTitle = new JLabel();
- CompositePane.setHeader(this.previewScroll, this.previewTitle, this.getPreviewBtn());
- this.tabPane = new RTabbedPane();
- Font var2 = UI.getAppFont();
- if (var2 != null) {
- this.tabPane.setFont(var2);
- }
-
- this.tabPane.setBorder(new RBevelBorder(1));
- this.tabPane.addTab(UI.getString("tab.all.label"), this.allScroll);
- if (super.doc.getSchema().getFlavorName().equals(SchemaIntf.SOX2_FLAVOR_NAME)) {
- this.tabPane.addTab(UI.getString("tab.author.label.sox"), this.unkindScroll);
- this.tabPane.addTab(UI.getString("tab.usage.label.sox"), this.usageScroll);
- } else {
- this.tabPane.addTab(UI.getString("tab.author.label"), this.unkindScroll);
- this.tabPane.addTab(UI.getString("tab.usage.label"), this.usageScroll);
- }
-
- this.tabPane.addTab(UI.getString("tab.changes.label"), this.changesScroll);
- this.tabPane.addTab(UI.getString("tab.preview.label"), this.previewScroll);
- this.tabPane.setTabPlacement(3);
- this.tabPane.addChangeListener(new 5(this));
- this.enableTabs();
- String var3 = this.getSchema().getFlavorName();
- this.setPreviewer(var3, SchemaUtilities.getWriter(this.getSchema(), var3));
- ((CompositePane)this).getSchemaDoc().addDocumentListener(this.docListener);
- }
-
- public void uriUpdateNotify(URI var1, URI var2) {
- if (var1.equals(this.activeDoc.getURI())) {
- this.activeDoc.setURI(var2);
- this.setTitle();
- }
-
- }
-
- public boolean addRequest() {
- ((CompositePane)this).declarationFocused(((CompositePane)this).getSchemaDoc().getFocusedDecl());
- return true;
- }
-
- PreviewButton getPreviewBtn() {
- if (this.previewBtn == null) {
- this.previewBtn = new PreviewButton(this);
- }
-
- return this.previewBtn;
- }
-
- void setPreviewer(String var1, ExportInterface var2) {
- this.previewer = var2;
- this.previewFlavor = var1;
- BaseDeclaration var3 = ((CompositePane)this).getSchemaDoc().getFocusedDecl();
- ((CompositePane)this).declarationFocused((BaseDeclaration)null);
- ((CompositePane)this).declarationFocused(var3);
- ((CompositePane)this).getSchemaDoc().setFocusedDecl(var3);
- this.previewBtn.updateText();
- }
-
- protected boolean hasDeclTable() {
- return false;
- }
-
- protected ScrollPop createPreviewPop() {
- ScrollPop var1 = new ScrollPop();
- JCheckBoxMenuItem var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.DTD_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.DTD_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.XDR_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.XDR_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.BIZ_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.BIZ_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.SOX2_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.SOX2_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, "xsd"));
- ((AbstractButton)var2).setSelected("xsd".equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.OSC_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.OSC_FLAVOR_NAME.equals(this.previewFlavor));
- var1.addSeparator();
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, "xml"));
- ((AbstractButton)var2).setSelected((new String("xml")).equals(this.previewFlavor));
- var1.addSeparator();
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.DCD_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.DCD_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.DDML_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.DDML_FLAVOR_NAME.equals(this.previewFlavor));
- var2 = var1.addAsCheckBox(new PreviewChoiceAction(this, SchemaIntf.RELAX_FLAVOR_NAME));
- ((AbstractButton)var2).setSelected(SchemaIntf.RELAX_FLAVOR_NAME.equals(this.previewFlavor));
- return var1;
- }
-
- public void setTitle() {
- String var1 = this.activeItem.getName();
- this.allTitle.setText(var1);
- this.unkindTitle.setText(var1);
- this.usageTitle.setText(var1);
- this.changesTitle.setText(var1);
- this.previewTitle.setText(var1);
- }
-
- public void setShowMode(int var1) {
- this.checkShowMode(var1);
- if (this.showMode != var1) {
- this.showMode = var1;
- if (var1 == 1) {
- this.activeItem = this.activeDecl;
- this.tabPane.setTitleAt(3, UI.getString("tab.changes.label"));
- this.changesBox.setText(UI.getString("comment.log.changes"));
- this.changesBox.setSelected(((CompositePane)this).getSchemaDoc().getChangeLogging());
- this.tabPane.addTab(UI.getString("tab.preview.label"), this.previewScroll);
- this.toggleDeclDoc.setName(UI.getString("comment.show.doc"));
- } else {
- this.activeItem = this.activeDoc;
- if (this.tabPane.getSelectedIndex() == 4) {
- this.tabPane.setSelectedIndex(0);
- }
-
- this.tabPane.setTitleAt(3, UI.getString("tab.history.label"));
- this.changesBox.setText(UI.getString("comment.prompt.for.version"));
- this.changesBox.setSelected(((CompositePane)this).getSchemaDoc().getPromptForVersionInfo());
- this.tabPane.removeTabAt(4);
- this.toggleDeclDoc.setName(UI.getString("comment.show.decl"));
- }
-
- this.enableTabs();
- this.updateTexts(true);
- }
- }
-
- protected void checkShowMode(int var1) {
- Debug.assert(var1 == 1 || var1 == 2);
- }
-
- protected int getShowMode() {
- return this.showMode;
- }
-
- SchemaIntf getSchema() {
- return ((CompositePane)this).getSchemaDoc().getSchema();
- }
-
- protected void previewPop(MouseEvent var1) {
- if (var1.isPopupTrigger()) {
- ScrollPop var2 = this.createPreviewPop();
- ((JPopupMenu)var2).show(this.getComponent(), var1.getX(), var1.getY());
- }
-
- }
-
- public void cut() {
- this.activeItem.touch(this.getActiveDecl());
- (new DefaultEditorKit.CutAction()).actionPerformed((ActionEvent)null);
- }
-
- public void copy() {
- (new DefaultEditorKit.CopyAction()).actionPerformed((ActionEvent)null);
- }
-
- public void paste() {
- this.activeItem.touch(this.getActiveDecl());
- (new DefaultEditorKit.PasteAction()).actionPerformed((ActionEvent)null);
- }
-
- public void clear() {
- this.activeItem.touch(this.getActiveDecl());
- this.getActiveTextArea().replaceSelection("");
- }
-
- protected void clearAllText() {
- this.allText.setText("");
- this.unkindText.setText("");
- this.usageText.setText("");
- this.changesText.setText("");
- this.previewText.setText("");
- }
-
- protected void updateOneText(int var1) {
- switch (var1) {
- case 0:
- String var2 = Platform.mapNewlinesForTextArea(this.activeItem.getAll());
- this.allText.setText(var2);
- this.allText.select(0, 0);
- break;
- case 1:
- this.unkindText.setText(Platform.mapNewlinesForTextArea(this.activeItem.getUnkind()));
- this.unkindText.select(0, 0);
- this.unkindText.setEditable(this.activeItem.isEditable());
- this.unkindText.setCursor(this.activeItem.isEditable() ? Cursor.getPredefinedCursor(2) : Cursor.getPredefinedCursor(0));
- break;
- case 2:
- this.usageText.setText(Platform.mapNewlinesForTextArea(this.activeItem.getUsage()));
- this.usageText.select(0, 0);
- this.usageText.setEditable(this.activeItem.isEditable());
- this.usageText.setCursor(this.activeItem.isEditable() ? Cursor.getPredefinedCursor(2) : Cursor.getPredefinedCursor(0));
- break;
- case 3:
- this.changesText.setText(Platform.mapNewlinesForTextArea(this.activeItem.getChanges()));
- this.changesText.select(0, 0);
- break;
- case 4:
- this.previewText.setText(Platform.mapNewlinesForTextArea(this.activeItem.getPreview()));
- this.previewText.select(0, 0);
- }
-
- }
-
- public void updateTexts(boolean var1) {
- if (!this.semaphoreDontUpdate) {
- this.semaphoreDontUpdate = true;
- this.setTitle();
- if (var1) {
- this.clearAllText();
- }
-
- this.updateOneText(this.tabPane.getSelectedIndex());
- this.semaphoreDontUpdate = false;
- }
- }
-
- public BaseDeclaration getActiveDecl() {
- return this.getShowMode() == 1 ? this.activeDecl.getDecl() : null;
- }
-
- protected void enableTabs() {
- SchemaFlavorIntf var1 = ((CompositePane)this).getSchemaDoc().getSchema().getFlavor();
- if (this.getShowMode() == 2) {
- for(int var2 = 0; var2 < this.tabPane.getTabCount(); ++var2) {
- this.tabPane.setEnabledAt(var2, true);
- }
-
- if (var1.getFlavorName().equals("sox")) {
- this.tabPane.setEnabledAt(2, false);
- }
- } else {
- BaseDeclaration var4 = this.getActiveDecl();
- if (var4 == null) {
- this.previousTab = this.tabPane.getSelectedIndex();
-
- for(int var3 = 0; var3 < this.tabPane.getTabCount(); ++var3) {
- this.tabPane.setEnabledAt(var3, false);
- }
- } else {
- this.tabPane.setSelectedIndex(this.previousTab);
-
- for(int var5 = 0; var5 < this.tabPane.getTabCount(); ++var5) {
- this.tabPane.setEnabledAt(var5, true);
- }
-
- if (var1.getFlavorName().equals("sox")) {
- if (var4 instanceof AttributeDeclaration) {
- this.tabPane.setEnabledAt(1, false);
- } else if (var4 instanceof ProcessingInstruction) {
- this.tabPane.setEnabledAt(1, false);
- this.tabPane.setEnabledAt(2, false);
- }
- }
- }
- }
-
- }
-
- public void setActiveDecl(BaseDeclaration var1) {
- if (var1 instanceof AggregateAttributeDecl) {
- var1 = ((AggregateAttributeDecl)var1).getFirst();
- }
-
- if (this.activeDecl.decl != var1) {
- this.activeDecl.setDecl((BaseDeclaration)var1);
- this.enableTabs();
- URI var2 = null;
- if (var1 instanceof ExternalSubset) {
- var2 = ((ExternalSubset)var1).getSystemURI();
- } else if (var1 != null) {
- var2 = ((BaseDeclaration)var1).getURI();
- }
-
- if (var2 == null) {
- var2 = ((CompositePane)this).getSchemaDoc().getURI();
- }
-
- boolean var3 = this.activeDoc.setURI(var2);
- if (this.getShowMode() == 1) {
- this.updateTexts(true);
- } else if (this.getShowMode() == 2 && var3) {
- this.updateTexts(true);
- }
-
- }
- }
-
- public void focusDeclaration(BaseDeclaration var1) {
- this.setActiveDecl(var1);
- }
-
- public JTextArea getActiveTextArea() {
- JScrollPane var1 = (JScrollPane)this.tabPane.getSelectedComponent();
- return (JTextArea)var1.getViewport().getView();
- }
-
- public void updateComments(String var1, String var2) {
- if (!this.semaphoreDontUpdate) {
- this.activeItem.touch(this.getActiveDecl());
- Vector var3 = StringUtilities.extractLine(var1, "--");
- this.activeItem.setComments(var3, var2);
- }
- }
-
- public boolean find(String var1, boolean var2) {
- String var3 = this.getActiveTextArea().getText();
- int var4 = var3.indexOf(var1, var2 ? 0 : this.getActiveTextArea().getSelectionStart() + 1);
- if (var4 >= 0) {
- this.getActiveTextArea().select(var4, var4 + var1.length());
- return true;
- } else {
- return var2 ? false : this.find(var1, true);
- }
- }
-
- public String getClassName() {
- return "com.extensibility.xa.CommentPane";
- }
-
- public JComponent getComponent() {
- return this.tabPane;
- }
-
- public String getSelectedText() {
- return this.getActiveTextArea().getSelectedText();
- }
-
- public boolean setSelectedText(String var1) {
- if (!this.getActiveTextArea().isEditable()) {
- return false;
- } else {
- this.getActiveTextArea().replaceSelection(var1);
- return true;
- }
- }
- }
-